#!/bin/sh
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

set -e
vardir="$1"
method=$2
option=$3

cd "$vardir/methods/floppy"

defaultfloppy=fd0
defaultfstype=msdos
if [ -f shvar.$option ]
then
	. ./shvar.$option
	defaultfloppy="`echo \"$defaultfloppy\" | sed -e 's,^/dev/,,'`"
fi

while [ -z "$floppy" ]
do
	echo -n '
Which floppy disk drive do you wish to use ?  Give the name in
/dev (eg fd0) or the MSDOS drive letter (eg A).  ['$defaultfloppy']  '
	read floppy
	if [ -z "$floppy" ]
	then
		floppy="$defaultfloppy"
	fi
	case "$floppy" in
	[ABab] | [ABab]: )
		floppy="`echo $floppy | \
			sed -e 's/:$//; s,^[Aa],/dev/fd0,; s,^[Bb],/dev/fd1,'`"
		;;
	/* )
		;;
	* )
		floppy="/dev/$floppy"
		;;
	esac
	if ! [ -b "$floppy" ]
	then
		echo "$floppy is not a block device."
		floppy=""
	fi
done

while [ -z "$fstype" ]
do
	echo -n '
What kind of filesystem is on the floppies ?  ['$defaultfstype']  '
	read fstype
	if [ -z "$fstype" ]
	then
		fstype="$defaultfstype"
	fi
	if ! grep "	$fstype$" /proc/filesystems >/dev/null
	then
		echo \
	"Your kernel does not appear to support that filesystem type."
		fstype=""
	fi
done

echo

outputparam () {
	echo "$2" | sed -e "s/'/'\\\\''/; s/^/$1='/; s/$/'/" >&3
}

exec 3>shvar.$option.new

outputparam defaultfloppy "$floppy"
outputparam defaultfstype "$fstype"

mv shvar.$option.new shvar.$option

exit 0
